using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("LocationServices")]
	public class LocationServices : MonoBehaviour
	{
		public static int LOCATION_SCAN_TIMEOUT => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "LocationServices", "LOCATION_SCAN_TIMEOUT");

		public float m_initializationTimeout => method_2<float>("m_initializationTimeout");

		public float m_stoppingAccuracy => method_2<float>("m_stoppingAccuracy");

		public GpsCoordinate m_lastKnownLocation => method_3<GpsCoordinate>("m_lastKnownLocation");

		public GpsCoordinate m_bestLocation => method_3<GpsCoordinate>("m_bestLocation");

		public bool m_isQueryingLocation => method_2<bool>("m_isQueryingLocation");

		public bool IsAvailable => method_11<bool>("get_IsAvailable", Array.Empty<object>());

		public bool IsReady => method_11<bool>("get_IsReady", Array.Empty<object>());

		public bool IsEnabled => method_11<bool>("get_IsEnabled", Array.Empty<object>());

		public LocationServices(IntPtr address, string className)
			: base(address, className)
		{
		}

		public LocationServices(IntPtr address)
			: this(address, "LocationServices")
		{
		}

		public static void StartGeoSearch()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "LocationServices", "StartGeoSearch");
		}

		public static double GetLatitude()
		{
			return MonoClass.smethod_14<double>(TritonHs.MainAssemblyPath, "", "LocationServices", "GetLatitude", Array.Empty<object>());
		}

		public static double GetLongitude()
		{
			return MonoClass.smethod_14<double>(TritonHs.MainAssemblyPath, "", "LocationServices", "GetLongitude", Array.Empty<object>());
		}

		public static double GetVerticalAccuracy()
		{
			return MonoClass.smethod_14<double>(TritonHs.MainAssemblyPath, "", "LocationServices", "GetVerticalAccuracy", Array.Empty<object>());
		}

		public static double GetHorizontalAccuracy()
		{
			return MonoClass.smethod_14<double>(TritonHs.MainAssemblyPath, "", "LocationServices", "GetHorizontalAccuracy", Array.Empty<object>());
		}

		public static bool GetEnabled()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "LocationServices", "GetEnabled", Array.Empty<object>());
		}

		public static bool GetReady()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "LocationServices", "GetReady", Array.Empty<object>());
		}

		public static void StartSearching()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "LocationServices", "StartSearching");
		}

		public static void StopSearching()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "LocationServices", "StopSearching");
		}

		public static int HasPermission()
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "LocationServices", "HasPermission", Array.Empty<object>());
		}

		public static string GetLocationData()
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "LocationServices", "GetLocationData");
		}

		public GpsCoordinate GetLastKnownLocation()
		{
			return method_14<GpsCoordinate>("GetLastKnownLocation", Array.Empty<object>());
		}

		public GpsCoordinate GetBestLocation()
		{
			return method_14<GpsCoordinate>("GetBestLocation", Array.Empty<object>());
		}

		public bool IsQueryingLocation()
		{
			return method_11<bool>("IsQueryingLocation", Array.Empty<object>());
		}
	}
}
